#ifndef __IJPEGD_COMMON_H__
#define __IJPEGD_COMMON_H__

#include <ijpegd.h>
#include <ijpegd_frame.h>
#include <ijpegd_iicodec.h>
#include <ijpegd_set.h>

struct ijpegd {
	ijpegd_param_t		param;
    int					regs[7];
    int					hea[64];  // -> BASE mem (base.dat) - 9 bits array
    int					heb[336]; // -> SYMB mem (symb.dat) - 8 bits array
    int					huffmin[64]; // -> min values (min.dat)
    int					qt[4][64]; // QT (qdtable.dat)

    int					hcode[4][256]; // -> Huffman simulation mem values (hmem.sim)
    int					hlen[4][256]; // -> Huffman simulation mem values (hmem.sim)
    int					huffenc[384];
	int					min[64];
	int64_t				dstidex;
	unsigned char		*dst_y;
	unsigned char		*dst_c;
	int					dst_w;
	int					dst_h;
	int					bs_len;

	c_mc_function_t		mc;
	ijpegd_icodec_t		*icodec;
	ijpegd_vbinfo_t		*vbinfo;
	ijpegd_frame_t		fenc;
    unsigned char		*fbs;
	ijpegd_icodec_io_t	icodec_io;
	ijpegd_nal_t		nal[4];
};


extern void ijpegd_log(ijpegd_t *h, int i_level, const char *psz_fmt, ... );

#endif
